package com.wwu.common.web;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;

/**
 * Layui表格需要的数据格式
 * @author 一蓑烟雨
 * @version 1.0.0
 * @date 2023-05-31 19:42
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value="ResultPage:Web通用分页查询返回对象实体", description="Web通用分页查询返回对象实体")
public class ResultPage<T> {
    @ApiModelProperty(value = "返回值编码")
    private Integer code;
    @ApiModelProperty(value = "返回值返回值名称")
    private String msg = "数据查询成功";
    @ApiModelProperty(value = "返回值List对象的长度")
    private Long count;
    @ApiModelProperty(value = "返回的List对象")
    private List<T> data;

    /**
     * 有参构造方法，数据长度为Long类型
     * @param count
     * @param data
     * @return null
     * @author 一蓑烟雨
     * @date 2023/5/31 19:55
     */
    public ResultPage(Long count, List<T> data){
        this.code = 0;
        this.count = count;
        this.data = data;
    }

    /**
     * 有参构造方法，数据长度为Integer类型
     * @param count
     * @param data
     * @return null
     * @author 一蓑烟雨
     * @date 2023/5/31 19:56
     */
    public ResultPage(Integer count, List<T> data){
        this.code = 0;
        this.count = count.longValue();
        this.data = data;
    }

    /**
     * 有参构造方法，分页查询使用
     * @param iPage
     * @return null
     * @author 一蓑烟雨
     * @date 2023/5/31 19:56
     */
    public ResultPage(IPage<T> iPage){
        this.code = 0;
        this.count = iPage.getTotal();
        this.data = iPage.getRecords();
    }
}
